package com.lrw.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Page {
	int pageSize;// 页容量
	int pageCount;// 页码
	List list = new ArrayList();// 数据

	public Page(int pageSize, int pageCount, List list) {
		this.pageSize = pageSize;
		this.pageCount = pageCount;
		this.list = list;
	}

	/**
	 * 得到下一页码
	 * 
	 * @return
	 */
	public int getNextPageCount() {
		return pageCount + 1;
	}

	/**
	 * 得到上一页码
	 */
	public int getLastPageCount() {
		return pageCount - 1;
	}

	/**
	 * 得到总数据量
	 * 
	 * @return
	 */
	public int getAllColumn() {
		return list.size();
	}

	/**
	 * 得到总页数
	 * 
	 * @return
	 */
	public int getAllPage() {
		if (list.size() % pageSize == 0) {
			return list.size() / pageSize;
		} else {
			return list.size() / pageSize + 1;
		}
	}

	/**
	 * 得到当前页的数据
	 * 
	 * @return
	 */
	public List getPageList() {
		if (list == null || list.size() <= 0)
			return null;
		List list2 = null;
		try {
			list2 = new ArrayList();
			int count = list.size();
			int allPage = 1;
			if (list.size() > 0) {
				if (count % pageSize == 0) {
					allPage = count / pageSize;
					list2 = list.subList(pageSize * (pageCount - 1),

					pageSize * pageCount);
				} else {
					allPage = count / pageSize + 1;
					if (pageCount < allPage) {
						list2 = list.subList(pageSize * (pageCount -

						1), pageSize * pageCount);
					} else {
						list2 = list.subList(pageSize * (pageCount - 1), count);
					}
				}
			} else {
				return Collections.EMPTY_LIST;
			}
		} catch (java.lang.IndexOutOfBoundsException e) {
			this.pageCount = 1;
			this.pageSize = 8;
			return getPageList();
		}
		return list2;
	}

	public static void main(String[] arg) {
	}

}
